package com.tencreat.domain.mall.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tencreat.common.enums.OrderStatus;
import com.tencreat.common.enums.OrderType;
import com.tencreat.domain.mall.MallSelfmention;
import com.tencreat.domain.mall.MallSelfmentionOrder;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
public class ResOrderGoodsVO {
    /**
     * id
     */
    @ApiModelProperty(value = "订单详情ID")
    private Integer id;

    /**
     *订单编号
     */
    @ApiModelProperty(value = "订单编号")
    private String orderSn;

    /**
     *订单id
     */
    @ApiModelProperty(value = "订单id")
    private Long orderId;

    /**
     * 下单时间
     */
    @ApiModelProperty(value = "下单时间")
    private String time;

    /**
     * 用户状态
     */
    @ApiModelProperty(value = "用户状态")
    private String userState;

    /**
     * 商品id
     */
    @ApiModelProperty(value = "商品id")
    private Integer goodId;

    /**
     * 商品名字
     */
    @ApiModelProperty(value = "商品名称")
    private String goodName;

    /**
     * 商品单价
     */
    @ApiModelProperty(value = "商品单价")
    private BigDecimal price;

    /**
     * 商品封面图片
     */
    @ApiModelProperty(value = "商品封面图片")
    private String goodUrl;

    /**
     * 商品二级标题
     */
    @ApiModelProperty(value = "商品二级标题")
    private String title;

    /**
     * 商品总数
     */
    @ApiModelProperty(value = "商品总数")
    private Integer goodNum;
    /*****
     * 商品规格ID
     */
    @ApiModelProperty(value = "商品规格ID")
    private Long normsId;
    /**
     * 商品规格
     */
    @ApiModelProperty(value = "商品规格")
    private String attribute;

    /**
     * 总金额
     */
    @ApiModelProperty(value = "总金额")
    private BigDecimal priceTotal;

    /**
     * 实付金额
     */
    @ApiModelProperty("实付金额")
    private BigDecimal actualPrice;

    /**
     * 地址信息
     */
    @ApiModelProperty(value = "地址信息")
    private String addressStr;

    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名")
    private String name;

    /**
     * 电话号码
     */
    @ApiModelProperty(value = "电话号码")
    private String phone;

    /**
     * 付款方式
     */
    @ApiModelProperty(value = "付款方式")
    private String payType;

    /**
     * 订单状态
     */
    @ApiModelProperty(value = "订单状态")
    private OrderStatus orderState;

    /**
     * 下单时间
     */
    @ApiModelProperty(value = "下单时间")
    private String payTime;

    /**
     * 发货快递编号
     */
    @ApiModelProperty(value = "发货快递编号")
    private String shipSn;



    /**
     * 是否为普通商品
     */
    @ApiModelProperty(value = "是否为普通商品")
    private Boolean isCommonShop;

    /**
     * 售后状态，0是可申请，1是用户已申请，2是管理员审核通过，3是管理员退款成功，4是管理员审核拒绝，5是用户已取消
     */
    @ApiModelProperty(value = "售后状态，0是可申请，1是用户已申请，2是管理员审核通过，3是管理员退款成功，4是管理员审核拒绝，5是用户已取消")
    private Integer aftersaleStatus;

    /** 物流方式 */
    @ApiModelProperty(value = "物流方式")
    private Long logisticsId;

    /** 快递运费 */
    @ApiModelProperty(value = "快递运费")
    private BigDecimal postage;

    /****
     * 经度
     */
    @ApiModelProperty(value = "经度")
    private String lng;
    /*****
     * 纬度
     */
    @ApiModelProperty(value = "纬度")
    private String lat;
    /*****
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String message;

    /*****
     * 备注
     */
    @ApiModelProperty(value = "订单类型",notes = "com.tencreat.common.enums.OrderType")
    private OrderType orderType;


    /*****
     * 退货物流单好
     */
    @ApiModelProperty(value = "退货物流单号")
    private String  returnLogistics;


    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "结束时间")
    private LocalDateTime endTime;

    /****
     * 支付
     */
    @ApiModelProperty(value = "订单价格")
    private BigDecimal orderPrice;

    /****
     * 支付
     */
    @ApiModelProperty(value = "优惠价格")
    private BigDecimal couponPrice;


    @ApiModelProperty("退货地址Id")
    private Long addressId;

    @ApiModelProperty("退货地址")
    private String refundAddress;

    @ApiModelProperty("收货人姓名")
    private String refundName;

    @ApiModelProperty("收货人电话号码")
    private String refundPhone;

    @ApiModelProperty("商品订单编号")
    private String orderGoodsSn;

    @ApiModelProperty("商品类型 0 店铺商品 | 1 商城商品")
    private Integer goodsType;

    @ApiModelProperty("优惠券名字")
    private String couponName;

    @ApiModelProperty("店铺id")
    private Long storeId;


    @ApiModelProperty("店铺名字")
    private String storeName;

    @ApiModelProperty("店铺类型")
    private String storeType;

    @ApiModelProperty("核销码")
    private String verificationCode;

    @ApiModelProperty("店铺头像")
    private String photo;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
    private LocalDateTime updateTime;

    @ApiModelProperty("是否核销订单  0 核销订单 1 扫码订单")
    private  Integer verificationOrder;
}
